﻿using System;
using System.Collections.Generic;
using System.Linq;
using Viettel.VOFFICE.DAO.Models;

namespace Viettel.VOFFICE.DAO.DAL.Repository
{
    /// <summary>
    /// tương tứng giữa công văn và sổ công văn
    /// </summary>
    public class DocumentBookRepository : IRepository<DocumentBook>
    {
        private VOFFICEContext context;
        public DocumentBookRepository(VOFFICEContext context)
        {
            if (context == null)
            {
                throw new Exception("Context must be init");
            }
            this.context = context;
        }
        public IEnumerable<DocumentBook> Get()
        {
            throw new NotImplementedException();
        }

        public DocumentBook GetById(object id)
        {
            throw new NotImplementedException();
        }

        public IEnumerable<DocumentBook> FindByName(object s)
        {
            throw new NotImplementedException();
        }

        public void Insert(DocumentBook T)
        {
            if (T != null)
            {
                context.DocumentBooks.Add(T);
                Save();
            }
        }

        public void Delete(object id)
        {
            throw new NotImplementedException();
        }

        public void Delete(DocumentBook T)
        {
            throw new NotImplementedException();
        }

        public void Update(DocumentBook T)
        {
            throw new NotImplementedException();
        }

        public void Save()
        {
            context.SaveChanges();
        }

        /// <summary>
        /// Lấy tổng số văn bản đã vào sổ trong kỳ
        /// </summary>
        /// <param name="dateTime"></param>
        /// <returns></returns>
        public int CountByGreaterCreatedAt(DateTime dateTime)
        {
            return context.DocumentBooks.Count(o => o.CreatedAt >= dateTime);
        }
    }
}
